package judesart.app.repository;

import java.util.List;

import judesart.app.domain.Artwork;
import judesart.app.domain.Gallery;
import judesart.app.domain.Room;
import judesart.app.shared.ValidationException;

public interface GalleryDAO
{
    Gallery createGallery(Gallery gallery) throws ValidationException;

    Gallery updateGallery(Gallery gallery) throws ValidationException;

    void deleteGallery(Long galleryId);

    List<Gallery> findGalleries(Long artistId, int startAt, int maxElements);

    List<Long> findGalleriesIdsByArtworkId(Long artworkId);

    int countGalleries(Long artistId);

    Gallery findGalleryById(Long galleryId);

    Gallery addRoomToGallery(Gallery gallery, Room room);

    Gallery deleteRoomFromGallery(Gallery gallery, String roomKey);

    Room updateRoom(Room room);

    Room findRoomByKey(String roomKey);

    Room addArtworkToRoom(Room room, Artwork artwork);

    Room deleteArtworkFromRoom(Room room, Artwork artwotk);

}
